package com.example.programmerinterview;

/**
 * 面试题 16.01. 交换数字
 * 编写一个函数，不用临时变量，直接交换numbers = [a, b]中a与b的值。
 * <p>
 * 示例：
 * <p>
 * 输入: numbers = [1,2]
 * 输出: [2,1]
 * <p>
 * 思路：不用变量，那么
 * 开始 nums[0]=a  nums[1]=b
 * 令nums[0]=a+b
 * 令nums[1]=nums[0]-nums[1]=a+b-b=a
 * 令nums[0]=nums[0]-nums[1]=a+b-a=b
 * 交换完成
 */
public class SwapNumbers {
    public int[] swapNumbers(int[] numbers) {
        numbers[0] = numbers[0] + numbers[1];
        numbers[1] = numbers[0] - numbers[1];
        numbers[0] = numbers[0] - numbers[1];
        return numbers;
    }
}

